/*
 * commandParser.h
 *
 *  Created on: 11.02.2012
 *      Author: ignacio
 */

#ifndef COMMANDPARSER_H_
#define COMMANDPARSER_H_

#include <string>
using std::string;
#include <iostream>
using std::ostream;

namespace neurignacio{
class commandOptions
{
	public:
		commandOptions(int argc, char* argv[]);
		friend ostream& operator<<(ostream& out, const commandOptions& cmd);
	public:
		bool help;
		unsigned long int numOfFrames;
		bool verbosity;
		unsigned int windowSize_X;
		unsigned int windowSize_Y;
		float worldSize_X;
		float worldSize_Y;
		// CHARACTER
		float characterPosition_X;
		float characterPosition_Y;
		float characterPosition_Z;
		float characterOrientation; // degrees
		float characterMinVelocity;
		float characterMaxSpeed;
		float characterMaxRotation; // degrees/time
		float characterMaxAcceleration;
		float characterMaxAngularAcceleration; // degrees²/time
		float characterVolatility;
		float characterTurnSpeed;
		// TARGET
		float targetPosition_X;
		float targetPosition_Y;
		float targetPosition_Z;
		float targetOrientation; // degrees
		float targetMinVelocity;
		float targetMaxSpeed;
		float targetMaxRotation; // degrees/time
		float targetMaxAcceleration;
		float targetMaxAngularAcceleration; // degrees²/time
		float targetVolatility;
		float targetTurnSpeed;
		// Movement Behaviour
		float timeToTargetLinear;
		float targetRadiusLinear;
		float slowRadiusLinear;
		float timeToTargetAngular;
		float targetRadiusAngular;
		float slowRadiusAngular;
		float maxPrediction; // Pursue




	};
} // end namespace neurignacio


#endif /* COMMANDPARSER_H_ */
